2025-09-22
Forestil jer, at vi har anvendt AI til at bygge et system ved hjælp af prompts. Dette system er skabt gennem iterative interaktioner, hvor vi kontinuerligt forbedrer og tilpasser resultatet baseret på vores instruktioner.
Med hver prompt giver vi AI’en specifikke anvisninger, som danner grundlaget for systemets funktionalitet.
> lav et system der ...
> tilføj X ...
> tilføj y ...
> osv ... [Denne proces vil typisk involvere en hel del prompts]
Det kører, det virker. Vi bruger det i et par år, men så opstår der et nyt behov. Kan vi, uden nogen kodningsfærdigheder, vende tilbage til koden og tilføje nye funktioner? Kan vi overhovedet genskabe systemet 1:1, selv hvis vi i et øjeblik af klarsyn faktisk gemte vores prompts?
Min personlige og nuværende erfaringer siger nej…
Men hvad tænker I?
Jeg ville heller ikke oversætte en tekst til kinesisk og derefter ukritisk sende den til udgivelse i Kina.
Tænk på, hvad Words stavekontrol har gjort for skrivefærdigheder.
Python3 [tryk Enter]print("Hello World!") [tryk Enter]tekst = "Hello World!"
for i in range(10):
print(tekst)
hello_world.pyny filtest_tal.pytal = 5
if (tal < 10):
print("Tallet er mindre end 10")
else:
print("Tallet er ikke mindre end 10")
Run [CTRL+ALT+N] eller markér kode [CMD+Enter]def main():
"""Hovedfunktion for simpel lommeregner"""
print("Simpel lommeregner - Addition")
print("=" * 30)
# Bed brugeren om at indtaste to tal
tal1 = float(input("Indtast det første tal: "))
tal2 = float(input("Indtast det andet tal: "))
# Beregn summen
resultat = tal1 + tal2
# Vis resultatet
print(f"\n{tal1} + {tal2} = {resultat}")
if __name__ == "__main__":
main()
lommeregner.pytal % 2 == 0)sidelængde ** 2).| Language | Paradigms | Description |
|---|---|---|
| R | Functional, Procedural | Primarily used for statistical computing and data analysis, R supports functional programming but also allows for procedural and object-oriented techniques. |
| Python | Object-Oriented, Procedural, Functional | A versatile language popular in data science, web development, and automation, Python supports multiple paradigms, including procedural, object-oriented, and functional programming. |
| Java | Object-Oriented, Concurrent, Imperative | Java is heavily used in enterprise software, Android development, and large-scale systems. It focuses on the object-oriented paradigm but also supports concurrency and imperative programming. |
| JavaScript | Event-Driven, Functional, Procedural, Object-Oriented | Used mainly for web development, JavaScript is a multi-paradigm language supporting event-driven, functional, and object-oriented programming. |
| C | Procedural, Imperative | A powerful system programming language, C is procedural and imperative, offering close-to-hardware performance. |
| C++ | Object-Oriented, Procedural, Generic, Functional | Extends C with object-oriented features while also supporting procedural, functional, and generic programming, making it popular for systems and game development. |
| C# | Object-Oriented, Procedural, Event-Driven, Functional | A language developed by Microsoft, C# is used in a variety of applications from web to desktop to game development. It supports object-oriented programming and functional paradigms. |
| Haskell | Functional, Declarative | Haskell is a purely functional language known for its use in academic and high-assurance systems. It emphasizes immutability, declarative programming, and type safety. |
| Scala | Functional, Object-Oriented | A language that blends functional and object-oriented programming, Scala is often used in big data, distributed computing, and scalable systems. |
| Go | Procedural, Concurrent | Designed for simplicity and scalability, Go is used in cloud infrastructure and systems programming. It is procedural and supports concurrency. |
| Swift | Object-Oriented, Protocol-Oriented, Functional | Primarily used for iOS/macOS development, Swift supports multiple paradigms, including object-oriented and protocol-oriented programming. |
| Ruby | Object-Oriented, Procedural, Functional | Ruby is known for its elegance and simplicity, popularized by the Rails framework. It supports object-oriented, procedural, and functional paradigms. |
| PHP | Object-Oriented, Procedural, Functional | PHP is widely used for server-side web development. It started as a procedural language but now supports object-oriented and functional programming. |
| Perl | Procedural, Object-Oriented, Functional | Often used for scripting and system administration tasks, Perl supports procedural, object-oriented, and functional programming. |
| Lisp | Functional, Procedural, Meta-programming | Lisp is one of the oldest programming languages. It is primarily functional but also supports meta-programming and procedural programming. |
| Prolog | Logic, Declarative | A logic programming language, Prolog is used in AI and computational linguistics. It follows a declarative paradigm, where the logic of computation is expressed without describing its control flow. |
| SQL | Declarative, Set-based | SQL is a domain-specific language used for database querying and management. It follows a declarative paradigm, where users specify what they want rather than how to compute it. |
| MATLAB | Procedural, Array-Oriented, Functional | Primarily used for numerical computing, MATLAB supports procedural and array-oriented programming. It is commonly used in scientific computing and engineering applications. |
| Rust | Procedural, Functional, Concurrent, Memory-safe | Rust is a system programming language focused on safety and performance. It supports procedural and functional paradigms with strong concurrency and memory safety guarantees. |
| Kotlin | Object-Oriented, Functional | Kotlin is used for Android development and web applications. It is a modern language that supports both object-oriented and functional programming, offering interoperability with Java. |
| Scheme | Functional, Procedural, Meta-programming | A minimalist dialect of Lisp, Scheme emphasizes functional and meta-programming with a simple syntax. |
| Erlang | Functional, Concurrent | Erlang is designed for building highly concurrent, distributed, and fault-tolerant systems, following functional and concurrent paradigms. |
| F# | Functional, Object-Oriented, Procedural | F# is part of the .NET ecosystem, with a focus on functional programming, but it also supports object-oriented and procedural paradigms. |
Procedureorienteret programmering baseres på, at man beskriver for computeren—trin for trin—hvad den skal foretage sig, og hvordan dens tilstand skal ændre sig. Paradigmet kan kaldes for programmering på elektronikkens præmisser.
De mest kendte programmeringssprog hvor procedureorienteret programmering gør sig gældende er C og Pascal.
I det funktionsorienterede paradigme behandles opgaven, der skal løses, som en evaluering af matematiske funktioner. Et eksempel på funktionelt programmeringssprog er R, som I kommer til at møde til jeres statistikkursus.
Logikbaseret programmering er, i den bredeste forstand, brugen af matematisk logik til computerprogrammering. Det mest kendte programmeringssprog hvor logikbaseret programmering gør sig gældende er Prolog.
I det objektorienterede paradigme behandles opgaven, der skal løses, ved brug af såkaldte objekter.
Et objekt i programmet repræsenterer en forestilling af objektet i virkeligheden. Objekter med lignende egenskaber samles i klasser.
En vigtig del af det objektorienterede paradigme er at skjule implementationen, således at objektet ligner virkeligheden, og implementationsdetaljer kan modificeres, uden at måden hvorpå objektet benyttes udefra ændres. Eksempler på programmeringssprog hvor objektorienteret programmering gør sig gældende er bl.a. Python, Java, C++ og C#.
Fordelen ved at programmere i et OOP (objekt-orienteret programmering) er, at vi kan organisere implementeringen omkring vores data som “objekter” frem for en organisering omkring funktioner.
Fem centrale koncepter vi kommer til at se på i løbet af kurset:
Klasser og objekter.
Attributter og metoder.
Encapsulation (“afskærmning? indkapsling?”)
Inheritance (“nedarvning”)
Polymorphism (“foranderlighed”)
I kan, til de sidste workshops eller løbende, selvstændigt udvide jeres systemer baseret på jeres interesse. Forventningen iht. hvad I skal kunne til eksamen, er det I bliver præsenteret for i litteraturen og undervisningen.
Lav jeres egne dictionaries, der kan anvendes til jeres case
navn, emne, datopatient_navn, behandling, prioritetadresse, type, vægtnavn, type, beløb